home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 2 / Meeting Pearls Vol. II (1995)(GTI - Schatztruhe)[!].iso / Pearls / dev / TurboM2 / m2 / FastStorage.mod < prev    next >
Text File  |  1994-12-22  |  619b  |  31 lines

  1. IMPLEMENTATION MODULE FastStorage ;
  2.  
  3. FROM SYSTEM IMPORT ADDRESS ;
  4. IMPORT Storage ;
  5.  
  6. CONST
  7.   maxLen = 16384 ;
  8.  
  9. VAR
  10.   block  : ADDRESS ;
  11.   offset : LONGINT ;
  12.  
  13. PROCEDURE ALLOCATE( VAR pointer : ADDRESS ; size : LONGINT ) ;
  14. BEGIN
  15.   IF ODD( size ) THEN INC( size ) END ;
  16.   IF size >= maxLen THEN
  17.     Storage.ALLOCATE( pointer, size )
  18.   ELSE
  19.     IF size >= maxLen - offset THEN
  20.       offset := 0 ;
  21.       Storage.ALLOCATE( block, maxLen )
  22.     END ;
  23.     pointer := block  + offset ;
  24.     offset  := offset + size
  25.   END
  26. END ALLOCATE ;
  27.  
  28. BEGIN offset := maxLen ; (* This forces an allocation on the first call *)
  29. END FastStorage.
  30.  
  31.